package thread;
/**
 * 线程的优先级
 * 线程有0个优先级，分别用整数1-10表示
 * 其中1为最低优先级，10为最高优先级，5为默认优先级
 * 线程无法主动索取时间片，只能被动被线程调度器分配，但是优先级越高的线程获取时间片的概率越大
 * 因此改变线程的优先级可以最大程度的改变线程获取时间片的次数\
 * MAX_PRIORITY表示最高优先级10，MIN_PRIORITY表示最低优先级，
 * NORM_PRIORITY表示默认优先级5
 */
public class PriorityDemo {
    public static void main(String[] args) {

        //默认优先级都是5
        Thread min =new Thread(){
          public  void  run(){
              for (int i = 0; i <10000 ; i++) {
                  System.out.println("min");
              }
          }
        };
        Thread max =new Thread(){
            public  void  run(){
                for (int i = 0; i <10000 ; i++) {
                    System.out.println("max");
                }
            }
        };
        Thread norm =new Thread(){
            public  void  run(){
                for (int i = 0; i <10000 ; i++) {
                    System.out.println("norm");
                }
            }
        };

        min.setPriority(Thread.MIN_PRIORITY);//设计为最低优先级(1)
        max.setPriority(Thread.MAX_PRIORITY);//设计为最高优先级(10)
        max.setPriority(Thread.NORM_PRIORITY);//NORM_PRIORITY表示默认优先级5
        min.start();
        max.start();
        norm.start();

    }
}
